到目前為止,我們寫的程式大多只處理記憶體裡的資料,但在現實世界中,資料往往來自於檔案:例如設定檔、文字紀錄、CSV 資料表、甚至程式運行日誌。掌握檔案操作,就能讓程式讀取與保存真實世界的資料,而不只是單純輸入與輸出。
Python 內建的 open() 函式是進入檔案世界的入口。基本語法如下:
f = open("example.txt", "r", encoding="utf-8")
content = f.read()
print(content)
f.close()
這裡 "r" 代表讀取模式(read),建議加上 encoding="utf-8" 以避免亂碼問題。
f = open("example.txt", "r", encoding="utf-8")
print(f.read()) # 一次讀取整份檔案
f.seek(0) # 游標移回開頭
print(f.readline()) # 讀取一行
print(f.readlines()) # 讀取所有行,回傳 list
f.close()
每次打開檔案都要記得關閉,否則可能造成資源浪費。with 可以自動幫你管理:
with open("example.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip())
這種寫法不需要手動呼叫 close(),是最推薦的方式。
模式 "w" 表示寫入(write),會覆蓋檔案;"a" 表示附加(append),會在原本內容後面繼續寫:
with open("output.txt", "w", encoding="utf-8") as f:
f.write("這是第一行\n")
f.write("這是第二行\n")
with open("output.txt", "a", encoding="utf-8") as f:
f.write("新增一行內容\n")
前兩天我們練習過字串處理,現在可以結合起來。比如,統計檔案裡有多少單字:
with open("example.txt", "r", encoding="utf-8") as f:
text = f.read()
words = text.split()
print(f"檔案總共有 {len(words)} 個單字")
透過這個練習,你會熟悉 讀寫檔案的基本流程,並理解「資料如何從程式流向硬碟,再從硬碟回到程式」。這是未來操作 CSV、JSON 甚至資料庫的基礎。完成後,你就能建立一個簡單的「文字資料儲存系統」,讓程式和真實世界產生連結。
--- by Ricky